const express = require('express');
const utility = require('utility');

const router = express.Router();
const db = require("../db");

//     获取
router.get("/userinfo", function(req, res) {
  // 1.获取当前登录用户信息 id
  // 2.id怎么来呢?肯定来自于token!
  // 3.前面 expressJWT 中间件负责解密token   req.user.userId 对象上 获取到数据  

  db(`select * from user where id=?`, req.user.userId, function(err, arr) {
    if (err != null) {
      res.send({
        "status": 1,
        "message": "获取用户信息失败！",
      });
    }
    // 
    else {
      res.send({
        "status": 0,
        "message": "获取用户信息成功！",
        data: arr[0]
      });
    }
  });


});

//     更新
router.post("/userinfo", function(req, res) {
  // 1.获取数据： 
  //   req.body.id  nickname email

  // 2.把数据修改
  db(`update user set ? where id=?`, [req.body, req.body.id], function(err) {
    if (err != null) {
      res.send({ //无需设置请求头 ，和转换为JSON
        "status": 1,
        "message": "修改用户信息失败！",
      });
    }
    // 
    else {
      res.send({
        "status": 0,
        "message": "修改用户信息成功！",
      });
    }
  });

});


//     密码
router.post("/updatepwd", function(req, res) {
  // 1.获取数据：req.body oldPwd newPwd
  req.body.oldPwd = utility.md5(req.body.oldPwd);
  req.body.newPwd = utility.md5(req.body.newPwd);

  // 2.把数据添加数据库
  db(`select * from user where password=? and id=?`, [req.body.oldPwd, req.user.userId], function(err, arr) {
    if (err != null) {
      res.send({ // 无需设置请求头 ，和转换为JSON  
        "status": 1,
        "message": "修改密码失败！",
      });
    }
    // 
    else {
      // 查有此人的时候
      if (arr.length != 0) {
        db(`update user set password=? where id=?`, [req.body.newPwd, req.user.userId], function(err) {
          if (err != null) {
            res.send({ // 无需设置请求头 ，和转换为JSON
              "status": 1,
              "message": "修改密码失败！",
            });
          }
          // 
          else {
            res.send({
              "status": 0,
              "message": "修改密码成功！",
            });
          }
        });
      }
      // 
      else {
        res.send({
          "status": 1,
          "message": "原密码输入有误！",
        });
      }

    }
  });
});

//     头像
router.post("/update/avatar", function(req, res) {
  // 1.获取body数据 avatar  POST普通

  // 2 修改头像
  db(`update user set user_pic=? where id=?`, [req.body.avatar, req.user.userId], function(err) {
    if (err != null) {
      res.send({
        "status": 1,
        "message": "修改用户头像失败！",
      });
    }
    // 
    else {
      res.send({
        "status": 0,
        "message": "修改用户头像成功！",
      });
    }
  });

});

// 固定4：导出模块。主app.js内部需要这个JS文件的内容！
module.exports = router;